みなさんへの告知板


オンラインゲームからは離れました。これからはリアルょぅι゛ょで頑張ろうと思います


ミジンコゼミナール


ネットゲーム解析初心者向け講座、ミジンコゼミナール 開講!

多重起動、窓化の基礎をしらんやつは見ておけ。
読んでも理解できないやつは解析以前の問題だから文句いうな('A`)

ミジンコゼミナール:ネットゲーム解析講座一覧
1日目:入学/必要な教材 2日目:基本的なアセンブリ言語
3日目:Ollydbg の操作方法と演習 4日目:多重起動1(FindWindow)
5日目:多重起動2(CreateMutex) 6日目:多重起動3(EnumWindows、その他の方法)
7日目:ウィンドウについて
8日目:窓化(D8) 9日目:窓化(D9)
10日目:DLL について 11日目:何か作ってみよう
12日目:試験 13日目:プレゼント

2006年10月13日


みじんこの始まり

秋の夜長・・・でも無いけど久しぶりにネトゲをやってみた。
ちなみにマビノギね。
やってみた感想はというと、ガッツリ系ではなくてノラリクラリ系(?)な感じ。
まぁ、始めたばっかだからかもしれないけどさ・・・('A`)




タル鯖の sp 改めぱんだ四号パパラッチ写真。


さて、ネトゲといえどゲームなわけでやっぱり改造とか色々出来るわけですよ。
俗にいうチート行為だね。
sp もバイナリいじりは好きなほうなので、久しぶりにチートやらマクロやらBOTの
話題を扱っている某2ch にいってきました。

色々なゲームの板があるんだけど昔に比べて職人さんがいない、ア〜ンド、お前ら
ちっとは自分で解析しろよ 凸(^w^) ゴラァ!!と言いたくなる板が多数…。

窓化教えろだとか、多重起動教えろだとか、ツールのパスがわかんないだの
どーでもいいのがワッサワッサ。
やり方わからない or やる気がないのどっちかだとは思うんだがみんな自分で解析する気ないのかな?
プログラミングとかに触れた事がなくてやり方がわからないってだけの奴なら十分救えるんだが…。



そうそう、どの板で見たのか忘れたけどチーターにはこんなランク付けがあるらしい



神>>>人>猿>鳩>ミジンコ>ミジンコ未満≧ゾウリムシ>アメーバ>
ミトコンドリア>・>.



「ミジンコ」って言葉はよく使われてるから知ってたけど、一つ上のランクでいきなし
鳩(ハト)かよ!って空飛べるじゃん!スゲェーじゃん!!出世しすぎだなオイ!!
まぁ、最後は予想道りネ申になるわけだがな。


と、こんな事をやってるうちにたまには人の役に立てる活動をしてみようかと思ったわけだ。
そこで1大プロジェクトを発足することにする。



題して






ミジンコ sp が教えるミジンコのための

ゲーム解析ミジンコゼミナール!!!






よ〜し、いいかミジンコども。今日から担任になった sp だ。
手抜きがあってもやさしく説明なんかしないから分からないことは勝手に調べろ。
授業内容の更新は不定期だからうpうpしか言わないミジンコはカエレ(・∀・)

それとな、このミジンコゼミナールではミジンコを対象にしているが
ネットの海に迷ったミトコンドリアやゾウリムシ、アメーバが来ることもあるだろう。
来ちまったもんはしょうがないからな、ミジンコ以外もゆったりしていけ。

最後に一つ、我がミジンコゼミでの格付けは以下の通りだ。多少甘くランクさせてるが
参考までに覚えておけ。

.(塵)
ネットをしたことが無い。言葉も話せない。

・(微生物)
言葉を覚え、PCを持っているがLANケーブルが足に絡まってうまく動けない。

ミトコンドリア(真核生物)
エロ画像収集で訓練を積み、ググったりして情報をさがせる。

アメーバ(原生生物)
尻板やアングラ系のサイトをうろつくようになる。
また、この時に色々なツールがあることを覚え始める。

ゾウリムシ(原生生物)
アメーバと同じく単細動物であるが、2進数、16進数を理解しており
バイナリエディタなどでプログラムの改変もできる。
また、プログラミングをささやかながら覚え始める。

ミジンコ(甲殻類)
ollydbg などのデバッガーを使い始め、簡単なアプリのシリアル番号くらいなら
はじき出せるようになる。また、クライアントプログラムを解析し、窓化、多重起動などの
修正は自分でできる。
しかし API に関しては知識が乏しい。

鳩(ハト目・ハト科の鳥類)
UWSC などではなく、自前でマクロツールを作れる。

猿(霊長類)
パケットを観察し始め、パケットが暗号化されているのに気づき暗号解析を始める。
また、蔵フォルダにある各種データの解除も行い、遊びほうけるようになる。

人(乳綱サル目ヒト科)
dll などを作成し、ゲームに組み込めるようになる。また、BOT の作成にも着手する。

神(造物主)
量りしれない力を持っているため、フリーザなどが持っている高級なスカウターで
計測しても瞬時に破壊されてしまう。神(カミ)と書くがゴッドと発音する。






さて、そろそろ ミジンコゼミの授業内容を伝えておこうか。






【ゲーム解析ミジンコゼミナール授業一覧】

※ 月末オープン!!予定('A`)


初日

 はじめに 入学式教材

 1時限目 基礎例題

 2時限目 窓化1窓化2

 3時限目 多重起動1多重起動2

 4時限目 多重起動3多重起動4


2日目

 1時限目 ファイルサイズ

 2時限目 タイムスタンプ

 3時限目 デバッガ検知1デバッガ検知2

 4時限目 DLL解析


3日目

 1時限目 ツール作成実習

 2時限目 ミジンコ試験




2006年08月24日


ネカフェで遊ぼ part3

ネカフェ話も最終回となります。

最後のターゲットは他のみなさんが使用してるPCの Cookie な
わけですが、これがまた簡単な内容なわけではっきり言って書くほどの
もんじゃありません。

が、とりあえず書いておきます。

まず Windows ってやつはアホというか便利というか初期インストールの
段階で勝手にCドライブやら何やらが共有されています。
sp が行ったネカフェももちろん設定されていました。

そして Cookie の奪取ですが、どこにあるか分かってないとお話になりません。
ではまず自分のPCの Cookie を見てみましょう。
パスは C:\Documents and Settings\Administrator\Cookies です。

見てみると色々なテキストファイルがあると思います。
このファイルのそれぞれがあなたがアクセスしたURLごとの Cookie
というわけです。

ざっと説明が終わったところで本題です。
さきほどCドライブが共有されていると言いましたね、しかしこのCドライブ
の共有はいわゆる隠し属性の共有となっています。
隠し共有にアクセスする場合、フォルダ名のあとに $ をつける必要があります。
つまり C$ ですね。
しかしこれだけでは情報がたりません。他に必要な情報はなんでしょう?


そうです、ターゲットのPCのIPアドレスもしくはマシン名です。
それでは前回(part2)立ち上げた cmd.exe を再度実行し、ipconfig /all と
打ちこんでください。

IP Address 192.168.***.*** というのが出てきたと思いますが、これが
あなたが使用しているPCのIPアドレスとなります。
次いで IP Address の表示の上には DHCP の有効/無効の表示があると思います。
もしこれが No となっていたら DHCP の機能はつかっていません。
つまり、PC毎にきまったIPアドレスを使っているわけです。
となると他人のPCのアドレスがある程度予測できると思います。

今回は例として自分の隣の席の人が使ってるPCがターゲットだと想定しましょう。
仮に自分のIPアドレスが 192.168.11.10 だった場合、おそらく隣のPCの
IPアドレスは 192.168.11.9 か 192.168.11.11 であると想定できます。

これらを踏まえて前回開いた explorer のアドレス欄に以下のように
打ちこみましょう。


\\192.168.11.11


相手のプリンタやタスクのフォルダが見えましたか?
見れるようならCドライブへのアクセスもしてみましょう。


\\192.168.11.11\c$


あなたの環境ではどうなりましたか? sp がいったネカフェでは
認証の必要もなくバッチリ見えていました。

あとは先ほど説明した Cookie があるディレクトリへ移動し、自分のPCへ
コピーするだけで任務終了となりますが、決して人様の Cookie を使って
サイトへアクセスしてはいけませんよ。
残念ながら今の時代だと不正アクセス禁止法に引っかかってしまいます。


さて、3回に続きお話をしてきましたが今回のようなケースはそうそう無いのでは?
とも思います。
もし、お店の方や管理業務をしている方がここを見ていたら今一度設定を見直して
みて下さい。

あなたが管理するPCも結構穴だらけかもしれないよ 凸(^w^

2006年08月23日


ネカフェで遊ぼ part2

ネカフェで遊ぼのつづき


残りのハードルはあと2つです。



3.エクスプローラを表示させない。
4.「スタート」→「設定」→「コントロールパネル」を使わせない。



前回はCドライブの表示まで行いましたがここからは単純作業です。
まぁ、口で言うよりもさっさと C:\\WINNT\\system32 フォルダに
移動してみましょう。

ここにはシステムの動作を制御する色々なデータが詰まっていますが
今回使用するのはDOSプロンプトですので cmd.exe を実行します。

さて、前回のお話で見掛け倒しが多い!といったのを覚えていますか?
ここでも例外はありません。
試しに DOSプロンプト上で explorer と入力し Enter してみて下さい。



どうです?出てきましたか?



なんともあっけなく3.をクリアしたわけです。
では最後の一つ、「コントロールパネル」の攻略となるわけですが
これもやはり同じ手順で見ることが出来ます。
合言葉は…



control



です。って、そのまんまですね(^w^;

とりあえずこれだけの機能が使えれば冗談抜きでネカフェをハックすることも
出来ます。(これもキッパリ

まぁ、これから先をどうするのかはみなさんのモラルに任せるとします。
ではまた会える日までアドュ〜・・・・・・・・・・って ん?Cookie の件?


そうそう、書くのが面倒ですっかり忘れてたよ。
しょーがないから・・・・・次回へつづく。

2006年08月19日


ネカフェで遊ぼ part1

天気も少しよくなってきたけど今年の夏はなんていうか…
やる気が感じられません!

なんだろうね、ガキンチョの頃の夏の空ってのは本当に真っ青だった。
文字通りの sky blue ってやつさ。
けど、ここ数年で気付いた空は色が薄くなってたんだよね、つまりあれだ


 夏もっとがんばれ!!



さて、久しぶりにネカフェにいってきました。
一時間くらいだけどね。

でもって何が言いたいかというとネカフェのセキュリティ悪すぎる。
具体的にいうと sp が行ったネカフェでは人様の Cookie の奪取が出来ました。
それもすごく簡単な方法で。

という訳で今日の講義は題して…
































































夏まっさかり!お前の物はオレの物!!















書いてる本人も意味が分かりません。でも多分間違ってはいないはず…。


では講義を始めます。そうそう、これは sp と同じくシステム構築してる方や
管理者の方にも心の片隅にとどめておいて欲しい内容です。
まぁ百戦錬磨のベテラン管理者さんならもちろん知ってる内容だけどね 凸(^w^



いきなりですが、



ActiveDirectory なんてそんなものだ!レジストリなんて
そんなものだ!つまり見かけ倒しが結構多い!!!




という事を覚えておいてください。




windows では policy と呼ばれるルール決めがあります。
例えば、どれどれのPCでは「タスクバーを表示させない」だったり
「スタートメニューを使わせない」という制限を設定できます。

今回 sp が行ったネカフェの制限は主に以下のようなものでした。


1.右クリック禁止
2.Cドライブを非表示。
3.右クリックでエクスプローラを表示させない。
4.「スタート」→「設定」→「コントロールパネル」を使わせない。


まぁ、ネカフェ側もセキュリティを考えてのことでしょうが
ほとんど意味ありません。(キッパリ!


まずは右クリック禁止、これはクライアント側にどんな影響を及ぼすでしょうか?
「プロパティ」が見れない、「新規作成(ファイル / フォルダ)」が出来ない。
大まかにはこんなものだと思います。

しかし!ここはネカフェです。IE があります。
さぁ IE を立ち上げて「右クリック」をしてみてください。
そう、あくまで制限がかかっているのはデスクトップ上の話なのです。
というわけでそのまま「ソースの表示」をしてファイルの内容を以下のように
書き換えます。


<html><body>
<a href="c:\">C drive</a>
</html></body>

書き換えたら拡張子を .html として保存します。
そして保存した ****.html を実行し、C drive の文字をクリックして下さい。

どうです?見れましたか?

これで1.と 2.の問題はクリアしたわけです。






次回へ続く…




2006年08月07日


びゅーそーす

えーと、今日(今月?)は更新する気がさらさらなかったのですが
知らない人が結構いそうな気がするので書いときます。

事の成り行きは・・・・・友人のエロサイト巡回が発端なのですが・・・(;´д`)ゞ

友 :おい、sp !!
sp :んが?
友 :エロサイト巡回してると変なの開いたりして大変なんだこれが
sp :そんなの知るか…
友 :なんかいい方法ないか?むしろ何とかしろ!!何か作れ!!
sp :ポップアップブロックとかじゃだめなの?
友 :あれって先に URL 登録しとかないと駄目なんでしょ?それ無理。マンドクセ
sp :じゃあ行き先のソースチェックすればいいじゃん。
友 :あ〜、なんかチェックできるスクリプトあったな。そういえば。
sp :そそ、それでがんばれ(*´ェ`)
友 :なんかいちいちチェックするのも面倒だな、他になにかない?
sp :う〜ん、そういや HTML とか cgi とか出来るんだよな?ならびゅーそーすはどうさね?
友 :ん?なにそれ?安全なエロサイト??
sp :いぁいぁ、とりあえず飛びたいページのURLは事前に分かるだしょ?プロパティで
友 :うん
sp :まず URL をコピーする。でもってブラウザのアドレスの先頭に view-source:って
   入れてからコピーした URL を貼り付ける。そして Enter すると…。
友 :なんだそれ?ちょっとまっとけ。え〜とコピーして…ドピュっと…
sp :(ニヤニヤ)
友 :おぉ!!スゲーじゃん!!読むの面倒くさいけど面白いじゃん!!
sp :だしょ?広告とか余計な情報が入ってるサイトだったらスクリプトのとこを
   消して保管しとけば広告なしのオリジナル(?)ページが出来上がるよ。



さて、友人は毎回こんな面倒なことをするのかは不明ですがみなさんも

view-source:URL
(WinXPだと駄目っぽ)

を試してみてください。
勉強の一環としてトロイやらウィルス入りの怪しいページを覗くのも面白いかもよ?

2006年08月05日


BBSチェッカー

久しぶりの更新です。
で、最近PCのデータを整理してるんですがいつ作ったんだか全然覚えてないア〜ンド
ちゃんと動くのかすら怪しいスクリプトが発見されたのでうpしておきます。

夏なのに「オレだよ、オレ。暇だよ暇」なんて方がいたら動作確認してみて下さい。
もしちゃんと動かない代物でしたら暇にカマかけて修正なんぞしてくれたらラッキー
とても助かります。

BBS_C


それにしてもカウントの値とか適当すぎだ…
まぁ、ほんとはソースの編集がめんど(ry


ちなみに次回の更新は・・・・・・・・・・夏終わった頃らへん?(ぇ

2006年05月15日


電話の知識

怪しい友人から変な依頼がきたりします。最近頼まれた(?)のはこんなこと。

・そこいらの電話でどっかに掛けたり聞いたりフガフガしたりされたい。
・時限爆弾でヒャッホーしたい。

どーみてもテロの第一歩にしか見えません。
が、防衛のための知識として少し足を踏み入れてみます。



みなさんのご自宅にある電話ですがどのように接続されているのかをイメージして
見ましょう。
見えそうで見えないセミヌード写真を凝視するよりも集中力はいらないはずです。

・MJ(モジュラージャック)に線を差し込んだら直にNTTへ繋がっている?

間違ってはいません。しかし線いっぽんで直にNTTへ繋がっているのを思い描いて
しまうと話が進みません。ほんの少しだけ細かく説明してみましょう。


まず、電話機と壁の差込口をMJで繋いでいます。
これはみなさん同じだと思うので問題ないよね。

|
--------+  |
電話機 |--------+ 壁
--------+ |
|





ここから外部(主に家の外壁)に設置してある保安器(ユニットともいいます)に接続され…
ちなみに保安器は落雷などの強い電気から家電品を保護するために設置されています。
分解すればわかりますが、NTT側からの配線と自宅側からの配線の間にヒューズがあり
このヒューズのおかげで落雷などによる障害を防ぎます。
やったことはありませんがNTT側の配線と直に繋いだとしたらパソコンやらなにやら
コンガリ焼けてしまうかもしれません。






| |
--------+  | | +---------
電話機 |--------+ 壁 +---------| 保安器
--------+ | | +---------
| |







それぞれの家の線を束ねる端子箱にまとめられて…
(端子箱 ⇒ 電信柱に繋がっている水平の黒い箱。よく見かけるでそ)






| | +--------+
| 電 +--| 端子箱 |
| | +--------+
---------+ | 信 |
保安器 |-----+ |
---------+ | 柱 |
| |





PBXを介して色々な回線と繋がるようになります。
(PBX ⇒ デジタルや公衆回線を繋ぐための装置です)

-------+ +-----+
端子箱 |------| PBX |
-------+ +-----+


ざっと説明するとこんなかんじです。
今回の依頼に該当するのは端子箱よりも内側にある保安器での接続についてです。
実際は端子箱で行うことも更にその先で行う事も出来ますが、結構面倒&不審人物
丸出しになってしまうので今回は控えておきます。

少し話がそれますが、世間に浸透している保安器の種類は主に3つあります。

・6PT
・6P
・6S

ADSLなどでリンク切れが多い場合は 6PT の古いやつを使っているせいかもしれません。
もし心当たりがあったらネットを検索してみて下さい。それなりに情報があります。
ただし工事はAI3種の資格が必要となります。
もしくは資格を持っている方が監督してくれれば問題ありません。
まぁ、資格なくても工事できるかもしれませんが48Vが流れている装置なので
あくまで自己責任として下さい。デンキハ イタイヨ〜


話を戻してっと…
保安器のカバーを開けてみると本体の上部に配線が2つ繋がっていると思います。
これがNTT側、つまり電信柱へつながる線となります。
次に下部にはL1、L2に配線が繋がっていると思います。
これが宅内へとつながる線です。

画像用意中…

気づいた人もいると思うけど、今回のキーとなるのはこの2本の線です。
この線が家の内部を通り電話機をつなぐためのMJの接続口に化けるわけです。

今回はここまでだけど大体のイメージは掴めたかな?
では次回までノシ

2006年04月16日


窓化

しばらくあそこやら何やらに出没してませんでしたが、とあるネトゲをやってる
友からの依頼で自動ツールを作ってました。
で、その中に好きなサイズに窓化する機能も入れましたがそこそこ便利なので
そこの機能だけうpしときます。

凸^w^

使用方法はまず対象を選択。X、Yそれぞれにサイズを指定します。
そしてセットを押すだけでおkおk。
不安な方はテキストファイルを開いて試してくださいな。

フルスクリーンでやってる場合、都度Alt+Tab で切り替えないと Web とか見れません。
使ってるモニタの画面サイズから X か Y の座標 -3〜5 くらいを指定して窓化しておくと、端っこの
隙間をクリックするだけで後ろにフォーカスが移るのでそれなりに便利かと思います。
まぁ、使いやすいサイズで調整して下さい。

※ 全てのソフトに対して有効なわけではありません。ちなみにシルクは大ジョブですw
  もし、動かなくても文句言わないでください(つwT)

ちなみにこのツールを作る前の話なんだけど世の中にあるツールはどんなものかと
探してみました。で、ダウンロードして使ってみたところ一部のソフトでは驚愕の事実が発覚。

1.全然機能しない。てか、窓にしようとする動きすら見えない。
2.固まる。お前は一体何をしたいんだと小一時(ry
3.↑シェアウェアとして出しているアホ作者が…(# ^ω^)ピキピキ

というわけで今回のツールをうpした次第です。
人様が作成したものに文句を言える程のものは作れませんが、あまりにも酷かったので…
無論、とてもいいソフトもあります。有名どころだと DirectX 対応のアレですね。

それではアドュウ〜^^ノシ

2006年02月26日


Navica○

● Navic○t 解析

ネトゲでは主にゲームに関するデータ(Lvやらマネーやら色々)を格納する入れ物として
データーベースなるものが使われます。
このデータベース、手作業で編集をすることもできますが規模が大きいとかなり面倒くさい
代物となっております。
そこでこのデータベースをイジクルために色々なソフトが出ているのですが、今回は navicat
という比較的扱いやすいツールについてのお話(解析)をします。


まず navicat ですが、お金を払わないと30日しか使えない使用期間の制限があります。

で、どうするか??

答えは簡単、いつも通りにやってしまえばいいわけです。


ではまず、olly さんで navicat を読み込みます。
30日の制限ということは何らかの方法で日付を読み取り、その日付とインストールをした
日付を比較し判断していると考えるのが妥当でしょう。
日付関係の API となると数個に限られますが、今回は一番ベーシックな GETLocalTime をターゲットとします。
olly さんで読み込み GETLocalTime を検索したら F2 でブレークポイントを仕掛けます。
その後、F9 で一気に処理を進めます。


0040CDA8 /$ 83C4 E8 ADD ESP,-18
0040CDAB |. 8D4424 08 LEA EAX,DWORD PTR SS:[ESP+8]
0040CDAF |. 50 PUSH EAX ; /pLocaltime
0040CDB0 |. E8 F3A6FFFF CALL ; \GetLocalTime ⇒ ブレークポイントでSTOP


ブレークポイントで止まりましたが、探しているのは最終判定をしている箇所なのでさらに
F8 でダラダラと進めていきます。 すると問題の日付判定の箇所に当たります。
本当はどのレジスタに年月日が含まれるか解説したいところですが、解析やってる人には
すぐ解る事だと思うのでここでは割愛します。(単純にレジスタの値をトレースするだけだけどね…)

さて、以下がターゲットとなる分岐処理です。
JE命令で判定をし、ダメなら 005402EA にある金払えのメッセージへ飛びます。


005402E0 . 74 0D JE SHORT default_.005402EF
005402E2 . 8BD3 MOV EDX,EBX
005402E4 . 8BC7 MOV EAX,EDI
005402E6 . 66:BE EFFF MOV SI,0FFEF
005402EA . E8 8D36ECFF CALL default_.0040397C ※ エラーメッセージへ。


なのでこのエラーメッセージがある 005402EA に飛ばずに処理を続けられれば
30日間の試用期間内とみなされ問題無くプログラムが起動する事が推測されます。
では JE命令 を JMP命令に書き換えましょう。


修正後
005402E0 EB 0D JMP SHORT default_.005402EF ※ JMP に書き換え
005402E2 . 8BD3 MOV EDX,EBX
005402E4 . 8BC7 MOV EAX,EDI
005402E6 . 66:BE EFFF MOV SI,0FFEF
005402EA . E8 8D36ECFF CALL default_.0040397C ※ エラーメッセージへ。



JMP 命令に書き換えることで 「74 0D」というマシン語が「EB 0D」に変わったと思います。
まずはこれをメモメモ…。

しかし、これだけでは実際の実行ファイル(navicat)に反映されてません。
現在の状況は OS のメモリ上に読みこまれたプログラムの内容を変えただけなのです。
つまりプログラム自体の改変は行われていません。
ではどうすればいいのか?答えは簡単です。
プログラム単体のアドレスを確認し内容を書き換えればいいだけです。

olly さんの左の列を見て頂くと 005****** がありますが、これが OS 上でのメモリアドレス
となります。
ではプログラム自体のアドレスとは?を見るために、右クリック「表示」⇒「実行ファイル」
で表示してみましょう。
すると、左の列にあるアドレスが 0013**** などに変わったと思います。
これがプログラム自体のアドレスとなります。
ちなみに私の環境では以下のようになりました。


0013F6E0 74 0D JE SHORT 0013F6EF
0013F6E2 8BD3 MOV EDX,EBX
0013F6E4 8BC7 MOV EAX,EDI
0013F6E6 66:BE EFFF MOV SI,0FFEF
0013F6EA E8 8D36ECFF CALL 00002D7C


さて、いよいよ最終段階です。このアドレス 0013F6E0 をメモしておきます。
そして olly さんを閉じ、適当なバイナリエディターで開いてみましょう。
訳の分からない16進数が並んでますが、私たちはプログラムのアドレスという宝の地図を
持っているので迷うことはありません。 恐れずに進みましょう。

先ほど調べた JE 命令のアドレス 0013F6E0 を見てみます。
ここに 74 0D とありますね。これを JMP 命令(EB 0D)に書き換えます。
後は上書き保存をして終了です。
保存したら念のため日付をずらして起動してみて下さい。
どうでしょう、問題なく起動しましたか?

今回の解析は簡単でしたね、実際の解析には15分かからなかったと思います。
なにはともあれこれで navicat はおとなしくすることでしょう。
ではみなさん。よいエミュライフを。

2005年12月28日


IPC接続

久しぶりの更新です。
というわけで、最近職場で sp がひそかに遊んでる batファイルのご紹介。

ipc.bat

使用方法:
1. PATH が通っているディレクトリに ipc.bat をポイ。
2. ipc.bat に引数として以下の3つを与える。
  [ネットワークアドレス] [接続開始ホストアドレス] [接続遜了ホストアドレス]
   ※ [ネットワークアドレス] は最後に.(ドット) をつけないこと
3. しばらく待つと最後に net use の結果が表示されるので後はお好きに。

指定したセグメント内にある共有ディレクトリへIPC(NULL接続)をするスクリプトです。
まぁ、いちいち\\192.168.1.*** とかって入力するのが面倒&どれがアクセスできるか
探すのが面倒なので作ったものです。

中を見ればわかるけど C$ や ADMIN$ にしても勿論使えます。
ただそのときは /u:"guest" "" とか /u:"administrator" "" とかに変えておいたほうが
いいかもね。

ちなみに職場にデフォルト設定のままで共有を放置してる人がいるおかげで共有ピクチャ
とかのファイルシステムが使い砲台。(←なぜか変換できない)

勿論 IPC でいけても中を見るには認証が必要な共有ディレクトリもある。
その場合は Guest とかで試して頑張りましょい。
もしadmin権限とかで接続できても「regedit \\192.168.1.***」 とか
「reg オプション \\192.168.1.***\HKLM\***」とかで変なデータ書き込みはしないこと^w^
てか IPC って今使ってる人いるのか??

2005年11月01日


127.0.0.1

もう11月スタートです、時間が過ぎるのって早いよな…

ところで面白い文献を見つけたよ、IRCにやってきたとあるハッカーのお話です。
原文はドイツらしいですが、有志の方々によって翻訳されてます。

http://ssquare.cocolog-nifty.com/tsubuyaki/2005/04/post_c6f5.html

海外はセンスがイイネ(・∀・)

2005年10月31日


Open Solaris

Solaris がめでたくオープンソースになりました。(だいぶ前だけどね…)
ソースコードのダウンロードはもちろん可能だけど時間と手間が掛かるのが難点。
そこでお勧めしたいのが、ソースブラウザなるものです。

http://cvs.opensolaris.org/source

呼んで字の如くブラウザ上でソースファイルの確認ができる優れもの!
こいつぁスゲェ。

2005年10月21日


find + grep

ある文字列を検索したい。
でもファイルがあるディレクトリが分からない。
その上ファイル名すら分からない。 という時に役立つのが find & grep
基本的な事だが物忘れ多いのでメモ。

例:
find "検索パス" -exec grep -s "探す文字列" * -type f {} /dev/null \;

ガイド:
find で指定している"検索パス"は /(ルートディレクトリ)でもカレント(./)でも
ある程度予想を立ててディレクトリを指定してもOK。
てか無くてもいいな…。

-exec、ここがメイン処理。
grep -s でエラーは出力しないようする。次にファイルから探したい文字を指定。
最後にファイル名の指定しても出来るが、ファイル名すら分からない場合は *(アスタリスク)
通常の grep と同じ。

-type f で文字列を検索するファイルを通常のテキストファイルとして指定。
必要なければ省いてOK。

/dev/null あーだこーだは入出力やら探すディレクトリ名の関係で必要。
これ省くと機能しない。

2005-10-21 By SP

2005年09月09日


Astec-○

システム管理に携わる業務をする者にとっては有益なソフト。

このソフト、ある日数まで使用可能というよくあるタイプの体験版がリリースされている。

そしてポイントは2点。

・規定した日付を越すと使用不可になる。
・ソフトがインストールされた日時がシステム(PC)の日時より先になると使用不可になる。



解析方法についてだが上述したようにいづれも時間というキーワードで繋がっている。

さっそく確認してみたところ GetLocalTime、GetSystemTime の API が確認できた。

以下に必要箇所の抜粋、注釈を記す。



まず 00401278GetLocalTime を見てみると現在時刻を取得し eax に転送し
その後の処理でそれぞれを比較しているのが確認できる。


00401277 |. 50 PUSH EAX ; /pLocaltime
00401278 |. FF15 6C635200 CALL DWORD PTR DS:[<&KERNEL32.GetLocalTi>; \GetLocalTime
0040127E |. 8B4424 00 MOV EAX,DWORD PTR SS:[ESP]
00401282 |. 8B4C24 02 MOV ECX,DWORD PTR SS:[ESP+2]
00401286 |. 25 FFFF0000 AND EAX,0FFFF
0040128B |. 81E1 FFFF0000 AND ECX,0FFFF
00401291 |. 3BC6 CMP EAX,ESI
⇒ 現在の年(EAX)と ECX(2004)を比較

00401293 |. 7F 20 JG SHORT コピー_・004012B5   
⇒ EAX と ECXが等しくなければ jmp

00401295 |. 75 18 JNZ SHORT コピー_・004012AF
00401297 |. 3BCF CMP ECX,EDI
⇒ 現在の月と EDI(10)を比較

00401299 |. 7F 1A JG SHORT コピー_・004012B5
0040129B |. 75 12 JNZ SHORT コピー_・004012AF
0040129D |. 8B4C24 06 MOV ECX,DWORD PTR SS:[ESP+6]
004012A1 |. 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14] 
004012A5 |. 81E1 FFFF0000 AND ECX,0FFFF         
004012AB |. 3BC8 CMP ECX,EAX
⇒ 現在の日付(ECX)と EAX(31) を比較。

004012AD |. 7F 06 JG SHORT コピー_・004012B5
⇒ EAX と ECX が等しくなければ jmp をしルーチン終了。



まず最初に行うべきことは 年を比較している 00401291 のCMP 命令の
チェックを外すことだ。
現在時刻同士で比較するように変えておく。

  > CMP EAX,EAX


次は月を比較する 00401297 の CMP 命令、ここは チェックタイムである
ECX 同士で比較でもさせておこう

> CMP ECX,ECX


最後は日付を比較する 004012AB の CMP 命令だ。
実際にはここを替える必要はないかもしれないが念のため現在日付同士で比較させておく。

> CMP EAX,EAX


一見するとこれで書き換え終了に見えるのだが、このまま実行しても期限切れの MessageBox
が出てきてしまう。

そう、これはまだ一つ目のポイントなのだ。

> ・規定した日付を越すと使用不可になる。
> ・ソフトがインストールされた日時がシステム(PC)の日時より先になると使用不可になる。

残る一つのチェックルーチンについてだが、今度はソフトがインストールされた時間と PC の持つ
時間との比較だ。

この比較には SystemTimeToFileTime、GetLocalTime が使われている。

004017B0 /$ 83EC 20 SUB ESP,20
004017B3 |. 8D4424 10 LEA EAX,DWORD PTR SS:[ESP+10]
004017B7 |. 56 PUSH ESI
004017B8 |. 50 PUSH EAX ; /pLocaltime
004017B9 |. FF15 6C635200 CALL DWORD PTR DS:[<&KERNEL32.GetLocalTi>; \GetLocalTime
⇒ システム時刻を取得

004017BF |. 8B35 5C635200 MOV ESI,DWORD PTR DS:[<&KERNEL32.SystemT>; KERNEL32.SystemTimeToFileTime
⇒ ESI へ SystemTimeToFileTime のアドレスをセット

004017C5 |. 8D4C24 04 LEA ECX,DWORD PTR SS:[ESP+4]
004017C9 |. 51 PUSH ECX ; /pFileTime  
004017CA |. 68 40005300 PUSH .00530040 ; |pSystemTime = _.00530040
004017CF |. FFD6 CALL ESI ; \SystemTimeToFileTime
⇒ ESI に入っているアドレスから SystemTimeToFileTime を取り出し

004017D1 |. 8D5424 0C LEA EDX,DWORD PTR SS:[ESP+C]
システム時刻を取得

004017D5 |. 8D4424 14 LEA EAX,DWORD PTR SS:[ESP+14]
004017D9 |. 52 PUSH EDX ; /pFileTime 
004017DA |. 50 PUSH EAX ; |pSystemTime
004017DB |. FFD6 CALL ESI ; \SystemTimeToFileTime
⇒ ファイル時刻を取得

004017DD |. 8D4C24 04 LEA ECX,DWORD PTR SS:[ESP+4]
⇒ 取得したシステム時刻をセット

004017E1 |. 8D5424 0C LEA EDX,DWORD PTR SS:[ESP+C]
⇒ 取得したファイル時刻をセット

004017E5 |. 51 PUSH ECX ; /pFileTime2
004017E6 |. 52 PUSH EDX ; |pFileTime1
004017E7 |. FF15 60635200 CALL DWORD PTR DS:[<&KERNEL32.CompareFil>; \CompareFileTime  
⇒ セットしたシステム時刻とファイル時刻を比較

004017ED |. 33C9 XOR ECX,ECX
004017EF |. 5E POP ESI
004017F0 85C0 TEST EAX,EAX
004017F2 0F9FC1 SETG CL
004017F5 8BC1 MOV EAX,ECX
004017F7 83C4 20 ADD ESP,20
004017FA \. C3 RETN


上記の内容から一つ目の SystemTimeToFileTime へシステム時刻をセットし
そして 2つ目の SystemTimeToFileTime すなわちファイル時刻との比較を
しているのが確認できる。

さて、ここで書き換える箇所としては時間を取得している箇所か?いや違うな。

システムとファイル生成日時を比較している CompareFileTime の API を書き換えればいい。

具体的には・・・・というよりも 004017E5 の PUSH ECX をEDX へ変更するだけだ、これで比較対照
は自分自身となる
そして比較結果としてゼロ以外は返らないため、時刻による判定はいつも真になり10年後に起動しても
無事に立ち上がってくれるというわけだ。



■判定式
CompareFileTime によりシステム日時とファイル日時を比較
・ファイル日時のほうが進んでいる -> 試用期間終了のメッセージへ
・システム日時のほうが進んでいる、もしくはファイル日時と同一の場合
-> 2004/10/31 とシステム日時との比較へ

GetLocalTime により 2004/10/31 とシステム日時を比較
・システム日時のほうが進んでいる -> 試用期間終了のメッセージへ
・システム日時が 2004/10/31 以前 -> 試用期間内と判定しソフトを起動


■バイナリ修正
+--------+------+
| offset | data |
+--------+------+
| 1291 | 3BC0 |
+--------+------+
| 1297 | 3BC9 |
+--------+------+
| 12AB | 3BC0 |
+--------+------+
| 17E5 | 52 |
+--------+------+


PS:ちなみに去年に解析したネタなので、日付の比較が 2004(年) になってます…orz
今年の体験版なら 2005 になってるのかな?w

2005年09月02日


Vig○l

友人が購読している雑誌にネットワーク上のパケットを覗くソフトが紹介
されていたらしい。

彼はこれを使ってみたところ、確かに使い心地はいいのだが制限が掛かって
いて途中でソフトが停止してしまう。と言ってきたんだ。

ソフト名は vig○l

以下はその友人のために解析した結果である。

004E08D0 〜 004E0968 はユーザー名を元に正規シリアル番号を生成する
ためのルーチン

004E096C 〜 004E09AE は登録時に入力するシリアル番号と正規シリアル
番号とを比較するルーチン。


004E08D0 /$ 55 PUSH EBP
004E08D1 |. 8BEC MOV EBP,ESP
004E08D3 |. 81C4 F8F7FFFF ADD ESP,-808
004E08D9 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
004E08DC |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
004E08DF |. FF75 FC PUSH DWORD PTR SS:[EBP-4] ; /<%s>
004E08E2 |. 68 7C956D00 PUSH Vigil.006D957C ; |Format = "%s
VIGIL

"
004E08E7 |. FF75 F8 PUSH DWORD PTR SS:[EBP-8] ; |s
004E08EA |. E8 CD7F1E00 CALL ; \wsprintfA
004E08EF |. 83C4 0C ADD ESP,0C
004E08F2 |. 8D8D F8F7FFFF LEA ECX,DWORD PTR SS:[EBP-808]
004E08F8 |. BA 89956D00 MOV EDX,Vigil.006D9589
004E08FD |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004E0900 |. E8 1BAA1C00 CALL Vigil.006AB320
004E0905 |. 0FBE85 07F8FFF>MOVSX EAX,BYTE PTR SS:[EBP-7F9] ; |
004E090C |. 50 PUSH EAX ; |<%c>
004E090D |. 0FBE95 FAF7FFF>MOVSX EDX,BYTE PTR SS:[EBP-806] ; |
004E0914 |. 52 PUSH EDX ; |<%c>
004E0915 |. 0FBE8D 04F8FFF>MOVSX ECX,BYTE PTR SS:[EBP-7FC] ; |
004E091C |. 51 PUSH ECX ; |<%c>
004E091D |. 0FBE85 02F8FFF>MOVSX EAX,BYTE PTR SS:[EBP-7FE] ; |
004E0924 |. 50 PUSH EAX ; |<%c>
004E0925 |. 0FBE95 0BF8FFF>MOVSX EDX,BYTE PTR SS:[EBP-7F5] ; |
004E092C |. 52 PUSH EDX ; |<%c>
004E092D |. 0FBE8D 14F8FFF>MOVSX ECX,BYTE PTR SS:[EBP-7EC] ; |
004E0934 |. 51 PUSH ECX ; |<%c>
004E0935 |. 0FBE85 16F8FFF>MOVSX EAX,BYTE PTR SS:[EBP-7EA] ; |
004E093C |. 50 PUSH EAX ; |<%c>
004E093D |. 0FBE95 F9F7FFF>MOVSX EDX,BYTE PTR SS:[EBP-807] ; |
004E0944 |. 52 PUSH EDX ; |<%c>
004E0945 |. 0FBE8D 0DF8FFF>MOVSX ECX,BYTE PTR SS:[EBP-7F3] ; |
004E094C |. 51 PUSH ECX ; |<%c>
004E094D |. 0FBE85 FBF7FFF>MOVSX EAX,BYTE PTR SS:[EBP-805] ; |
004E0954 |. 50 PUSH EAX ; |<%c>
004E0955 |. 68 8D956D00 PUSH Vigil.006D958D ; |Format = "%c%c%c%c-%c%c%c%c-%c%c%c"
004E095A |. FF75 F8 PUSH DWORD PTR SS:[EBP-8] ; |s
004E095D |. E8 5A7F1E00 CALL ; \wsprintfA
004E0962 |. 83C4 30 ADD ESP,30
004E0965 |. 8BE5 MOV ESP,EBP
004E0967 |. 5D POP EBP
004E0968 \. C3 RETN
004E0969 90 NOP
004E096A 90 NOP
004E096B 90 NOP
004E096C /$ 55 PUSH EBP
004E096D |. 8BEC MOV EBP,ESP
004E096F |. 81C4 F4F7FFFF ADD ESP,-80C
004E0975 |. 894D F4 MOV DWORD PTR SS:[EBP-C],ECX ;
UIDを MOV

004E0978 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX ;
入力したPASSをMOV

004E097B |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
004E097E |. 8D95 F4F7FFFF LEA EDX,DWORD PTR SS:[EBP-80C]
004E0984 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ;
EAXにUIDを移動

004E0987 |. E8 44FFFFFF CALL Vigil.004E08D0 ;
checkルーチン 004E08D0 へ

004E098C |. 8D8D F4F7FFFF LEA ECX,DWORD PTR SS:[EBP-80C] ;
checkルーチン で生成した正規シリアル番号を ECX へ

004E0992 |. 51 PUSH ECX
004E0993 |. FF75 F4 PUSH DWORD PTR SS:[EBP-C]
004E0996 |. E8 D18B1D00 CALL Vigil.006B956C
004E099B |. 83C4 08 ADD ESP,8
004E099E |. 85C0 TEST EAX,EAX
004E09A0 |. 75 07 JNZ SHORT Vigil.004E09A9
004E09A2 |. B8 01000000 MOV EAX,1
004E09A7 |. EB 02 JMP SHORT Vigil.004E09AB
004E09A9 |> 33C0 XOR EAX,EAX
004E09AB |> 8BE5 MOV ESP,EBP
004E09AD |. 5D POP EBP
004E09AE \. C3 RETN



最終的に register の状態は以下となっていた。
上記の注釈にある通り ECX の値を確認していれば、正規シリアルが
入っているのを確認できる。

ECX 0012BDCC ASCII "4c57-fd26-247"



さて、自分の名前と解析したシリアル番号を登録画面に入れてみるか。




期待通りの結果になった、これでこの問題はクリアーだ。

2005年08月29日


Google

・Google 検索についてのまとめ
 これ以外にもオプションや Google API があるけども、これだけ知ってれば十分かな。
 ネットで見つけた構文と併せてうp。 (other は見つけた資料から勝手に抜粋)

【intext:】
テキスト(webページ)に含まれる文字列を検索。
ただし、リンクなどは含まれない。
リンクになっている文字を探す場合は【inanchor:】

Example:「intext:unix」


【inurl:】
指定した名称が URL に含まれるサイトを検索。

Example:「inurl:sample.html」

other:
inurl:admin filetype:txt
inurl:admin filetype:db
inurl:admin filetype:cfg
inurl:mysql filetype:cfg
inurl:passwd filetype:txt
inurl:iisadmin
inurl:auth_user_file.txt
inurl:orders.txt
inurl:"wwwroot/*."
inurl:adpassword.txt
inurl:webeditor.php
inurl:file_upload.php
inurl:gov filetype:xls "restricted"


【allinurl】
指定した名称全てが含まれるサイトを検索

Example:「cgi-bin/test.cgi」

other:
allinurl:cgi-bin password
allinurl:/scripts/cart32.exe
allinurl:/CuteNews/show_archives.php
allinurl:/phpinfo.php
allinurl:/privmsg.php
allinurl:/privmsg.php


【intitle:】
Web ページのタイトルになっている文字列を検索。

Example:「intitle:unix」

other:
intitle:"Index of" .sh_history
intitle:"Index of" .bash_history
intitle:"index of" passwd
intitle:"index of" people.lst
intitle:"index of" pwd.db
intitle:"index of" etc/shadow
intitle:"index of" spwd
intitle:"index of" master.passwd
intitle:"index of" htpasswd
intitle:"index of" members OR accounts
intitle:"index of" user_carts OR user_cart
allintitle: sensitive filetype:doc
allintitle: restricted filetype :mail
allintitle: restricted filetype:doc site:gov


【site:】
ドメインを指定して検索。

Example:「site:jp」

【link:】
指定したサイトにリンクしているサイトを検索。

Example:「link:google.com」

【cache:】
キャッシュしている情報を検索。
過去の情報(更新前の情報)や既に無いサイトの情報を確認するのに有効
ただし、消滅したサイトを探すのであればアーカイブサイトのほうがいいな。

Example:「cache:google.com」


【filetype:】
指定したファイルタイプ(拡張子)で検索。
txt、doc、xls、ppt、mdb、cvs、ml、swf、etc・・・
恐らくネット上にある全ての拡張子が対象となる。

Example:「filetype:pdf」

other:
filetype:bak inurl:"htaccess|passwd|shadow|htusers"
filetype:mdb inurl:"account|users|admin|administrators|passwd|password"
filetype:sql ("passwd values ****" |"password values ****" | "pass values ****" )
filetype:mdb inurl:users.mdb

【指定なしでの通常検索】

Index of /admin
Index of /passwd
Index of /password
Index of /mail
"Index of /" +passwd
"Index of /" +password.txt
"Index of /" +.htaccess
"Index of /secret"
"Index of /confidential"
"Index of /root"
"Index of /cgi-bin"
"Index of /credit-card"
"Index of /logs"
"Index of /config"
"http://*:*@www" site
index of ftp +.mdb allinurl:/cgi-bin/ +mailto


あとはエラーメッセージを指定する方法もある。
サービスのバージョンが確認出来るのでセキュリティホール探しに大いに役立つ。

"Apache/1.3.28 Server at" intitle:index.of
"Microsoft-IIS/5.0 Server at" intitle:index.of


とかとか色々


上手く言葉を合わせて検索すると車のナンバーや、電話番号とかが
見れちゃうのってどうなんだろう^^;

がんばれ世界のセキュリティ


Google hacks―プロが使うテクニック&ツール100選

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。